#pragma once

#include "SRMacro.h"
#include <memory>
#include <matsu.h>

#if _ANDROID_
#include <tr1/memory>
#endif

namespace sora
{
	typedef enum {
		RendererTypeGLES1,
		RendererTypeGLES2,
	} RendererType;

	enum {
		DepthBufferSupport = 1 << 0,
	};

	typedef enum {
		TransformationTypeScale,
		TransformationTypeRotate,
		TransformationTypeTranslate,
	} TransformationType;

	//typedef
	class Model;
#if _IPHONE_
	typedef std::tr1::shared_ptr<Model> ModelPtr;
#elif _ANDROID_
	typedef std::tr1::shared_ptr<Model> ModelPtr;
#else
	typedef std::shared_ptr<sora::Model> ModelPtr;
#endif
	
	typedef enum {
		LightTypeAmbient,
		LightTypeDiffuse,
		LightTypeSpecular
	} LightType;

	//typedef
	typedef matsu::vec4 color4;
	typedef matsu::vec3 color3;
}
